Performance analysis is the evaluation of a computer application's behavior using information obtained as the application executes. This analysis helps identify inefficiencies in an application that may cause performance problems. To enable performance analysis, many computer applications produce trace log files to record each action, or event, that occurs as the application executes as well as the event's corresponding timestamp. Function calls, system-level kernel calls, and file system calls, are examples of application events that can be recorded in a trace log file.
Individual events and sequences of time-stamped events in time order called traces can be recorded in trace log files. One trace log file can contain hundreds of traces. Analyzing traces can be difficult and labor-intensive because there can be: (1) long chains of events in which each event affects a subsequent event; (2) events running concurrently that affect one another; and (3) complex event sequences. There is a need for a process that efficiently identifies and analyzes application traces. This process should significantly reduce manual effort, yet effectively identify performance problems.